@echo off
chcp 65001 >nul 2>&1
setlocal EnableDelayedExpansion

REM Flutter Pub Get Windows 双击执行脚本
REM 作用：获取 Flutter 项目的所有依赖包

echo 📦 开始获取 Flutter 依赖包...
echo ======================================

REM 获取脚本所在目录（项目根目录）
set "SCRIPT_DIR=%~dp0"
cd /d "%SCRIPT_DIR%"

echo 📁 当前目录: %CD%
echo ⏰ 开始时间: %DATE% %TIME%

REM 检查是否为 Flutter 项目
if not exist "pubspec.yaml" (
    echo ❌ 错误：当前目录不是 Flutter 项目！
    echo 请确保脚本位于 Flutter 项目根目录。
    pause
    exit /b 1
)

echo ✅ 检测到 Flutter 项目

REM 显示 pubspec.yaml 基本信息
for /f "tokens=2 delims= " %%a in ('findstr "^name:" pubspec.yaml 2^>nul') do set "PROJECT_NAME=%%a"
for /f "tokens=2 delims= " %%a in ('findstr "^version:" pubspec.yaml 2^>nul') do set "PROJECT_VERSION=%%a"

if defined PROJECT_NAME (
    echo 📄 项目名称: !PROJECT_NAME!
)
if defined PROJECT_VERSION (
    echo 🏷️  项目版本: !PROJECT_VERSION!
)

echo.

REM 执行 flutter pub get
echo 🔄 正在执行 flutter pub get...
call flutter pub get

REM 检查命令执行结果
if %ERRORLEVEL% neq 0 (
    echo.
    echo ❌ 依赖包获取失败！
    echo 可能的原因：
    echo    - 网络连接问题
    echo    - pubspec.yaml 配置错误
    echo    - Flutter 环境未正确配置
    echo.
    goto :end
)

echo.
echo ✅ 依赖包获取完成！
echo 📝 已完成操作：
echo    - 下载所有依赖包
echo    - 更新 pubspec.lock
echo    - 生成 .dart_tool/ 配置
echo.

REM 显示依赖包统计信息
if exist "pubspec.lock" (
    for /f %%a in ('findstr /c:"name:" pubspec.lock 2^>nul ^| find /c /v ""') do set "DEPS_COUNT=%%a"
    if defined DEPS_COUNT (
        echo 📊 总依赖包数量: !DEPS_COUNT!
    )
)

:end
echo ⏰ 完成时间: %DATE% %TIME%
echo ======================================
echo 💡 提示：如果遇到缓存问题，可以先运行 'flutter clean' 清理项目

REM 等待用户按键后关闭
echo.
echo 按任意键关闭窗口...
pause >nul